home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
SGI Developer Toolbox 6.1
/
SGI Developer Toolbox 6.1 - Disc 4.iso
/
src
/
haeberli
/
vidtools
/
videcho.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-01
|
2KB
|
71 lines
/*
* Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
* All Rights Reserved.
*
* This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
* the contents of this file may not be disclosed to third parties, copied or
* duplicated in any form, in whole or in part, without the prior written
* permission of Silicon Graphics, Inc.
*
* RESTRICTED RIGHTS LEGEND:
* Use, duplication or disclosure by the Government is subject to restrictions
* as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
* and Computer Software clause at DFARS 252.227-7013, and/or in similar or
* successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
* rights reserved under the Copyright Laws of the United States.
*/
/*
* videcho -
* Echo video in time
*
* Paul Haeberli - 1992
*/
#include "math.h"
#include "stdio.h"
#include "canvas.h"
main(argc,argv)
char **argv;
{
canvas *c, *old, **last;
float blend;
int i, nframes, inpos, feedback;
if(argc < 3) {
fprintf(stderr,"usage: videcho nframes blend [-f]\n");
exit(1);
}
if(argc>3)
feedback = 1;
else
feedback = 0;
nframes = atoi(argv[1]);
blend = atof(argv[2]);
last = 0;
while(c=filetocanvas(stdin)) {
if(!last) {
last = (canvas **) malloc(nframes*sizeof(canvas *));
for(i=0; i<nframes; i++)
last[i] = 0;
inpos = 0;
}
old =last[inpos];
if(feedback) {
if(old) {
blendcanvas(c,old,c,blend);
freecanvas(old);
}
last[inpos] = clonecanvas(c);
} else {
last[inpos] = clonecanvas(c);
if(old) {
blendcanvas(c,old,c,blend);
freecanvas(old);
}
}
canvastofile(c,stdout);
inpos = (inpos+1)%nframes;
}
exit(0);
}